The Internet has become a dominant communications platform in modern times. Almost all communications technologies are directly related or tangentially related to one or more Internet applications. Many applications support real-time communications where data is exchanged between parties. In one aspect, such data is exchanged according to a publisher and subscriber (or publisher/subscriber) data model. Loosely defined, a subscriber could be any network application that connects to any other publisher network application having the capabilities of communicating data to multiple such subscriber connections. More narrowly defined, a publisher/subscriber model may indicate some predetermined relationship such as an electronic subscription to a site before data content can be delivered. Some subscriptions may require monetary arrangements whereas other subscriptions may be free yet still require the user to go through some type of subscription process before data can be delivered from the respective publisher.
Publisher/subscriber technology can be described as a messaging pattern where senders (publishers) of messages are not programmed to send their messages to specific receivers (subscribers). Rather, published messages are characterized into classes, without knowledge of what, if any, subscribers there may be. Thus, subscribers express interest in one or more classes, and generally only receive messages that are of interest, without knowledge of what, if any, publishers there are. This decoupling of publishers and subscribers can allow for greater scalability and a more dynamic network topology.
In the publish/subscribe model, subscribers typically receive only a subset of the total messages published. The process of selecting messages for reception and processing is referred to as filtering, where there are two common forms of filtering: topic-based and content-based. In a topic-based system, messages are published to “topics” or named logical channels. Subscribers in a topic-based system will receive all messages published to the topics to which they subscribe, and all subscribers to a topic generally receive the same messages. The publisher is responsible for defining the classes of messages to which subscribers can subscribe. In a content-based system, messages are delivered to a subscriber if the attributes or content of those messages match constraints defined by the subscriber. The subscriber is thus responsible for classifying the messages. Some systems support a hybrid of the two; publishers post messages to a topic while subscribers register content-based subscriptions to one or more topics.
One problem with publisher/subscriber systems is a side-effect of their main advantage: the decoupling of publisher from subscriber. The problem is that it can be difficult to specify stronger properties that an application may need on an end-to-end basis. As a first example, many such systems attempt to deliver messages for a time, but then give up. If an application actually needs a stronger guarantee (such as: messages will always be delivered or, if delivery cannot be confirmed, the publisher will be informed), the system probably will not have a mechanism to deliver the respective property. Another example arises when a publisher “assumes” that a subscriber is listening. For instance, assume that a publisher/subscriber system logs problems in a factory where: any application that senses an error publishes an appropriate message, and the messages are displayed on a console by the logger daemon, which subscribes to the “errors” topic. If the logger happens to crash, publishers will not have a mechanism to observe this event, and all error messages will vanish.
Wireless networks are now responsible for transmitting volumes of Internet traffic and are increasingly burdened by the growth of data transmission demand from subscribers. For example, much of the transmitted data occurs without the user's awareness. In fact, many web sites such as related to common news organizations may connect to 20 or 30 domains to either download advertising content to a communications device or to collect tracking information from the device in order to create demographic profiles of the users or sometimes, other nefarious purposes. Thus, the customer experience can be degraded since these tangential connections utilize network bandwidth that could otherwise be applied to transmission of desired content. Often, the desired content is textual, while the advertising content tends to be graphic with the result of a highly disproportionate amount of the total transfer being for undesired data.